package com.ht.api.websocket;

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;

import lombok.extern.slf4j.Slf4j;

@Configuration
@Profile("prod")
@Slf4j
public class WebSocketConfig {
	/**
	 * 注入ServerEndpointExporter， 这个bean会自动注册使用了@ServerEndpoint注解声明的Websocket
	 * endpoint
	 */
	@Bean
	public ServerEndpointExporter serverEndpointExporter() {
		return new ServerEndpointExporter();
	}

	@Bean
	public WebSocketFilter websocketFilter() {
		return new WebSocketFilter();
	}

	@Bean
	public FilterRegistrationBean<?> getFilterRegistrationBean() {
		FilterRegistrationBean<WebSocketFilter> bean = new FilterRegistrationBean<>();
		bean.setFilter(websocketFilter());
		bean.addUrlPatterns("/websocket/*");
		return bean;
	}
}